const express = require("express")
const app = express();
const path = require("path");

//处理body请求体的中间件
app.use(express.urlencoded())
app.use(express.json())


// 手写处理body请求的中间件
// 1.请求体是字符串的时候:
// app.use((req,res,next)=>{

//     let dataStr = ''
//     //获取请求体转为字符串：
//     req.on("data",chunk=>{
//         dataStr += chunk.toString()
//     })

//     //把请求体转为对象：
//     req.on("end",()=>{
//         console.log(dataStr);

//         //第一种遍历数组转为对象
//         // const o = {}
//         // dataStr.split('&').forEach(item=>{
//         //     const [key,value] = item.split('=')
//         //     o[key] = value
//         // })
//         // req.body = o

//         //第二种累加器转为对象
//         const data = dataStr.split('&').reduce((prev,item)=>{
//             const[key,value] = item.split('=')
//             prev[key] = value
//             return prev
//         },{})

//         req.body = data

//         next();
//     })

// })


// 2.请求体是对象的时候:
// app.use((req,res,next)=>{
//     let dataObj
//     req.on("data",chunk=>{
//         dataObj = JSON.parse(chunk.toString())
//     })
//     req.on("end",()=>{
//         req.body = dataObj
//         next()
//     })
// })






app.post("/adduser", (req, res) => {
  console.log("req.body",req.body);
  const {
    name,
    age,
    sex
  } = req.body;

  if (!name || !age || !sex) {
    return res.send({
      code: 10001,
      mes: "添加失败",
      data: null
    })
  }

  res.send({
    code: 10000,
    mes: "添加成功",
    data: null
  })
})



//静态资源部署接口
app.get("/1", (req, res) => {
  const filePath = path.resolve(__dirname, "./01.post请求手写中间件.html");
  res.sendFile(filePath);
})

app.get("/2", (req, res) => {
    const filePath = path.resolve(__dirname, "./02.post请求使用中间件.html");
    res.sendFile(filePath);
  })

app.listen(3000, () => {
  console.log("服务器请求成功 请访问 http://127.0.0.1:3000");
})